Tempo

  • By Canonical Observability
Channel Revision Published Runs on
latest/stable 51 01 Aug 2024
Ubuntu 22.04 Ubuntu 20.04
latest/stable 9 16 Feb 2024
Ubuntu 22.04 Ubuntu 20.04
latest/candidate 71 01 Aug 2024
Ubuntu 22.04 Ubuntu 20.04
latest/candidate 9 12 Dec 2023
Ubuntu 22.04 Ubuntu 20.04
latest/beta 75 01 Aug 2024
Ubuntu 22.04 Ubuntu 20.04
latest/beta 9 12 Dec 2023
Ubuntu 22.04 Ubuntu 20.04
latest/edge 80 02 Sep 2024
Ubuntu 22.04 Ubuntu 20.04
latest/edge 9 31 Jul 2023
Ubuntu 22.04 Ubuntu 20.04
juju deploy tempo-k8s --channel beta
Show information

Platform:

Get charmed Tempo up and running

This tutorial covers how to get started with tempo-k8s deployment. We’ll have loki-k8s as our source of traces that will send traces to a tempo-k8s endpoint and view those traces.

To deploy Tempo using this operator you would need a juju microk8s controller bootstrapped and an added model.

Deploy Tempo

juju deploy tempo-k8s tempo --trust # stable channel

Verify deployment

Wait until the status settles to active/idle with empty Message.

Deploy loki-k8s

juju deploy loki-k8s loki --trust

Wait until the status settles to active/idle.

Push charm traces

integrating with tempo-k8s over the tracing endpoint will enable loki to push traces to an endpoint given by tempo.

juju integrate tempo:tracing loki:tracing

Wait until the status settles to active/idle.

Access pushed traces

In order to view traces that are being pushed to tempo:

First, run:

juju status

This should result in an output similar to the one below:

Model  Controller  Cloud/Region        Version  SLA          Timestamp
test   microk8s    microk8s/localhost  3.4.2    unsupported  10:43:10+02:00

App    Version  Status  Scale  Charm      Channel        Rev  Address        Exposed  Message
loki   2.9.5    active      1  loki-k8s   latest/stable  128  10.152.183.59  no       
tempo  ...      active      1  tempo-k8s  latest/stable   30  10.152.183.99  no       

Unit      Workload  Agent  Address       Ports  Message
loki/0*   active    idle   10.1.157.122         
tempo/0*  active    idle   10.1.157.92  

From this output, from the Address column of tempo App, retrieve the IP address 10.152.183.99 in this case.

Then, run:

curl http://10.152.183.99:3200/api/search

This should result in an output similar to the one below:

{"traces":[{"traceID":"a2027a15a699abe7aa486acebb3ad666","rootServiceName":"loki","rootTraceName":"charm exec","startTimeUnixNano":"1714034639056755713","durationMs":428},{"traceID":"75fcce6ce2d039d4e6eaef124e990f71","rootServiceName":"tempo","rootTraceName":"charm exec","startTimeUnixNano":"1714034590401418014","durationMs":100},{"traceID":"a8a7aaf06d0b1c3b4ef60f712ed4a414","rootServiceName":"loki","rootTraceName":"charm exec","startTimeUnixNano":"1714034371768834582","durationMs":403},{"traceID":"8b24259875109cee34fac2974d261dc0","rootServiceName":"tempo","rootTraceName":"charm exec","startTimeUnixNano":"1714034330738254164","durationMs":90},{"traceID":"7420decc3f4ffbbc7198da2511e79b2f","rootServiceName":"loki","rootTraceName":"charm exec","startTimeUnixNano":"1714034039177431462","durationMs":302},{"traceID":"d8be3a5f8951bb1737533acec2cbefd","rootServiceName":"tempo","rootTraceName":"charm exec","startTimeUnixNano":"1714033994376613078","durationMs":86}],"metrics":{"inspectedTraces":6,"inspectedBytes":"71201","completedJobs":1,"totalJobs":1}}

This response represents the traces that were pushed from loki charm to tempo up to this moment.

One of the key points of tempo is its seamless integration with grafana. To view and inspect traces in a grafana instance, see how to integrate tempo with grafana


Help improve this document in the forum (guidelines). Last updated 4 months ago.